#coding=utf-8
from uliweb.orm import *
from uliweb.utils.common import get_var


#月报及季度报表
#20101122新增按照条线统计准开发需求月度报表
class Requirement_Month_Report_Tx(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表日期
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #准开发需求总数
    #total_num = Field(int, verbose_name='总数',required=True)
    #准开发需求总数
    total_num = Field(int, verbose_name='总数',required=True)
    #个人条线新建准开发需求数
    new_num_01 = Field(int, verbose_name='个人条线/新建',required=True)
    #个人条线续建准开发需求数
    old_num_01 = Field(int, verbose_name='个人条线/续建',required=True)
    #公司条线新建准开发需求数
    new_num_02 = Field(int, verbose_name='公司条线/新建',required=True)
    #公司条线续建准开发需求数
    old_num_02 = Field(int, verbose_name='公司条线/续建',required=True)
    #后台条线新建准开发需求数
    new_num_03 = Field(int, verbose_name='后台条线/新建',required=True)
    #后台条线续建准开发需求数
    old_num_03 = Field(int, verbose_name='后台条线/续建',required=True)
    #海外条线新建准开发需求数
    new_num_04 = Field(int, verbose_name='海外条线/新建',required=True)
    #海外条线续建准开发需求数
    old_num_04 = Field(int, verbose_name='海外条线/续建',required=True)
    #安全条线新建准开发需求数
    new_num_05 = Field(int, verbose_name='安全条线/新建',required=True)
    #安全条线续建准开发需求数
    old_num_05 = Field(int, verbose_name='安全条线/续建',required=True)
    #技术条线新建准开发需求数
    new_num_06 = Field(int, verbose_name='技术条线/新建',required=True)
    #技术条线续建准开发需求数
    old_num_06 = Field(int, verbose_name='技术条线/续建',required=True)
    #应用条线新建准开发需求数
    new_num_07 = Field(int, verbose_name='应用条线/新建',required=True)
    #应用条线续建准开发需求数
    old_num_07 = Field(int, verbose_name='应用条线/续建',required=True)
    #资源条线新建准开发需求数
    new_num_08 = Field(int, verbose_name='资源条线/新建',required=True)
    #资源条线续建准开发需求数
    old_num_08 = Field(int, verbose_name='资源条线/续建',required=True)
    #投产条线新建准开发需求数
    new_num_09 = Field(int, verbose_name='投产条线/新建',required=True)
    #投产条线续建准开发需求数
    old_num_09 = Field(int, verbose_name='投产条线/续建',required=True)
    new_num_10 = Field(int, verbose_name='实施管理/新建',required=True)
    #投产条线续建准开发需求数
    old_num_10 = Field(int, verbose_name='实施管理/续建',required=True)

    class Table:
        fields = [
            {'name':'month', 'width':100},
            {'name':'total_num', 'width':50},
            {'name':'new_num_01', 'width':50},
            {'name':'old_num_01', 'width':50},
            {'name':'new_num_02', 'width':50},
            {'name':'old_num_02', 'width':50},
            {'name':'new_num_03', 'width':50},
            {'name':'old_num_03', 'width':50},
            {'name':'new_num_04', 'width':50},
            {'name':'old_num_04', 'width':50},
            {'name':'new_num_05', 'width':50},
            {'name':'old_num_05', 'width':50},
            {'name':'new_num_06', 'width':50},
            {'name':'old_num_06', 'width':50},
            {'name':'new_num_07', 'width':50},
            {'name':'old_num_07', 'width':50},
            {'name':'new_num_08', 'width':50},
            {'name':'old_num_08', 'width':50},
            {'name':'new_num_09', 'width':50},
            {'name':'old_num_09', 'width':50},
            {'name':'new_num_10', 'width':50},
            {'name':'old_num_10', 'width':50},
            
            ]
            
        
#20101122新增按照开发中心统计准开发需求月度报表
class Requirement_Month_Report_Kfzx(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #准开发需求总数
    #total_num = Field(int, verbose_name='准开发需求总数',required=True)
    #北京开发中心新建准开发需求数
    new_num_01 = Field(int, verbose_name='北京开发中心/新建',required=True)
    #北京开发中心续建准开发需求数
    old_num_01 = Field(int, verbose_name='北京开发中心/续建',required=True)
    #上海开发中心新建准开发需求数
    new_num_02 = Field(int, verbose_name='上海开发中心/新建',required=True)
    #上海开发中心续建准开发需求数
    old_num_02 = Field(int, verbose_name='上海开发中心/续建',required=True)
    #厦门开发中心新建准开发需求数
    new_num_03 = Field(int, verbose_name='厦门开发中心/新建',required=True)
    #厦门开发中心续建准开发需求数
    old_num_03 = Field(int, verbose_name='厦门开发中心/续建',required=True)
    #广州开发中心新建准开发需求数
    new_num_04 = Field(int, verbose_name='广州开发中心/新建',required=True)
    #广州开发中心续建准开发需求数
    old_num_04 = Field(int, verbose_name='广州开发中心/续建',required=True)
    #成都开发中心新建准开发需求数
    new_num_05 = Field(int, verbose_name='成都开发中心/新建',required=True)
    #成都开发中心续建准开发需求数
    old_num_05 = Field(int, verbose_name='成都开发中心/续建',required=True)
    #武汉开发中心新建准开发需求数
    new_num_06 = Field(int, verbose_name='武汉开发中心/新建',required=True)
    #武汉开发中心续建准开发需求数
    old_num_06 = Field(int, verbose_name='武汉开发中心/续建',required=True)
    #深圳个贷支持中心新建准开发需求数
    new_num_07 = Field(int, verbose_name='深圳个贷支持中心/新建',required=True)
    #深圳个贷支持中心续建准开发需求数
    old_num_07 = Field(int, verbose_name='深圳个贷支持中心/续建',required=True)
    #香港支持中心新建准开发需求数
    new_num_08 = Field(int, verbose_name='香港支持中心/新建',required=True)
    #香港支持中心续建准开发需求数
    old_num_08 = Field(int, verbose_name='香港支持中心/续建',required=True)

    class Table:
        fields = [
            {'name':'month', 'width':100},
            {'name':'new_num_01', 'width':50},
            {'name':'old_num_01', 'width':50},
            {'name':'new_num_02', 'width':50},
            {'name':'old_num_02', 'width':50},
            {'name':'new_num_03', 'width':50},
            {'name':'old_num_03', 'width':50},
            {'name':'new_num_04', 'width':50},
            {'name':'old_num_04', 'width':50},
            {'name':'new_num_05', 'width':50},
            {'name':'old_num_05', 'width':50},
            {'name':'new_num_06', 'width':50},
            {'name':'old_num_06', 'width':50},
            {'name':'new_num_07', 'width':50},
            {'name':'old_num_07', 'width':50},
            {'name':'new_num_08', 'width':50},
            {'name':'old_num_08', 'width':50},
            ]
    

#20101122新增按照条线统计准开发需求季度报表
class Requirement_Quarter_Report_Tx(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表季度显示
    quarter = Field(CHAR, verbose_name='季度',max_length=8, required=True)
    #准开发需求总数
    #total_num = Field(int, verbose_name='总数',required=True)
    #准开发需求总数
    total_num = Field(int, verbose_name='总数',required=True)
    #个人条线新建准开发需求数
    new_num_01 = Field(int, verbose_name='个人条线/新建',required=True)
    #个人条线续建准开发需求数                          
    old_num_01 = Field(int, verbose_name='个人条线/续建',required=True)
    #公司条线新建准开发需求数                          
    new_num_02 = Field(int, verbose_name='公司条线/新建',required=True)
    #公司条线续建准开发需求数                          
    old_num_02 = Field(int, verbose_name='公司条线/续建',required=True)
    #后台条线新建准开发需求数                          
    new_num_03 = Field(int, verbose_name='后台条线/新建',required=True)
    #后台条线续建准开发需求数                          
    old_num_03 = Field(int, verbose_name='后台条线/续建',required=True)
    #海外条线新建准开发需求数                          
    new_num_04 = Field(int, verbose_name='海外条线/新建',required=True)
    #海外条线续建准开发需求数                          
    old_num_04 = Field(int, verbose_name='海外条线/续建',required=True)
    #安全条线新建准开发需求数                          
    new_num_05 = Field(int, verbose_name='安全条线/新建',required=True)
    #安全条线续建准开发需求数                          
    old_num_05 = Field(int, verbose_name='安全条线/续建',required=True)
    #技术条线新建准开发需求数                          
    new_num_06 = Field(int, verbose_name='技术条线/新建',required=True)
    #技术条线续建准开发需求数                          
    old_num_06 = Field(int, verbose_name='技术条线/续建',required=True)
    #应用条线新建准开发需求数                          
    new_num_07 = Field(int, verbose_name='应用条线/新建',required=True)
    #应用条线续建准开发需求数                          
    old_num_07 = Field(int, verbose_name='应用条线/续建',required=True)
    #资源条线新建准开发需求数                          
    new_num_08 = Field(int, verbose_name='资源条线/新建',required=True)
    #资源条线续建准开发需求数                          
    old_num_08 = Field(int, verbose_name='资源条线/续建',required=True)
    #投产条线新建准开发需求数                          
    new_num_09 = Field(int, verbose_name='投产条线/新建',required=True)
    #投产条线续建准开发需求数                          
    old_num_09 = Field(int, verbose_name='投产条线/续建',required=True)
    new_num_10 = Field(int, verbose_name='实施管理/新建',required=True)
    #投产条线续建准开发需求数
    old_num_10 = Field(int, verbose_name='实施管理/续建',required=True)
    
    class Table:
        fields = [
            {'name':'quarter', 'width':100},
            {'name':'total_num', 'width':50},
            {'name':'new_num_01', 'width':50},
            {'name':'old_num_01', 'width':50},
            {'name':'new_num_02', 'width':50},
            {'name':'old_num_02', 'width':50},
            {'name':'new_num_03', 'width':50},
            {'name':'old_num_03', 'width':50},
            {'name':'new_num_04', 'width':50},
            {'name':'old_num_04', 'width':50},
            {'name':'new_num_05', 'width':50},
            {'name':'old_num_05', 'width':50},
            {'name':'new_num_06', 'width':50},
            {'name':'old_num_06', 'width':50},
            {'name':'new_num_07', 'width':50},
            {'name':'old_num_07', 'width':50},
            {'name':'new_num_08', 'width':50},
            {'name':'old_num_08', 'width':50},
            {'name':'new_num_09', 'width':50},
            {'name':'old_num_09', 'width':50},
            {'name':'new_num_10', 'width':50},
            {'name':'old_num_10', 'width':50},
            
            ]
            

#20101122新增按照开发中心统计准开发需求月度报表
class Requirement_Quarter_Report_Kfzx(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表季度显示
    quarter = Field(CHAR, verbose_name='季度',max_length=8, required=True)
    #准开发需求总数
    #total_num = Field(int, verbose_name='准开发需求总数',required=True)
    #北京开发中心新建准开发需求数
    new_num_01 = Field(int, verbose_name='北京开发中心/新建',required=True)
    #北京开发中心续建准开发需求数
    old_num_01 = Field(int, verbose_name='北京开发中心/续建',required=True)
    #上海开发中心新建准开发需求数
    new_num_02 = Field(int, verbose_name='上海开发中心/新建',required=True)
    #上海开发中心续建准开发需求数
    old_num_02 = Field(int, verbose_name='上海开发中心/续建',required=True)
    #厦门开发中心新建准开发需求数
    new_num_03 = Field(int, verbose_name='厦门开发中心/新建',required=True)
    #厦门开发中心续建准开发需求数
    old_num_03 = Field(int, verbose_name='厦门开发中心/续建',required=True)
    #广州开发中心新建准开发需求数
    new_num_04 = Field(int, verbose_name='广州开发中心/新建',required=True)
    #广州开发中心续建准开发需求数
    old_num_04 = Field(int, verbose_name='广州开发中心/续建',required=True)
    #成都开发中心新建准开发需求数
    new_num_05 = Field(int, verbose_name='成都开发中心/新建',required=True)
    #成都开发中心续建准开发需求数
    old_num_05 = Field(int, verbose_name='成都开发中心/续建',required=True)
    #武汉开发中心新建准开发需求数
    new_num_06 = Field(int, verbose_name='武汉开发中心/新建',required=True)
    #武汉开发中心续建准开发需求数
    old_num_06 = Field(int, verbose_name='武汉开发中心/续建',required=True)
    #深圳个贷支持中心新建准开发需求数
    new_num_07 = Field(int, verbose_name='深圳个贷支持中心/新建',required=True)
    #深圳个贷支持中心续建准开发需求数
    old_num_07 = Field(int, verbose_name='深圳个贷支持中心/续建',required=True)
    #香港支持中心新建准开发需求数
    new_num_08 = Field(int, verbose_name='香港支持中心/新建',required=True)
    #香港支持中心续建准开发需求数
    old_num_08 = Field(int, verbose_name='香港支持中心/续建',required=True)

    class Table:
        fields = [
            {'name':'quarter', 'width':100},
            {'name':'new_num_01', 'width':50},
            {'name':'old_num_01', 'width':50},
            {'name':'new_num_02', 'width':50},
            {'name':'old_num_02', 'width':50},
            {'name':'new_num_03', 'width':50},
            {'name':'old_num_03', 'width':50},
            {'name':'new_num_04', 'width':50},
            {'name':'old_num_04', 'width':50},
            {'name':'new_num_05', 'width':50},
            {'name':'old_num_05', 'width':50},
            {'name':'new_num_06', 'width':50},
            {'name':'old_num_06', 'width':50},
            {'name':'new_num_07', 'width':50},
            {'name':'old_num_07', 'width':50},
            {'name':'new_num_08', 'width':50},
            {'name':'old_num_08', 'width':50},
            ]


#20101129新增按照开发中心统计任务新增、续建月度报表
class Assignment_Month_Report_Kfzx(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #准开发需求总数
    #total_num = Field(int, verbose_name='准开发需求总数',required=True)
    #北京开发中心新建准开发需求数
    new_num_01 = Field(int, verbose_name='北京开发中心/新建',required=True)
    #北京开发中心续建准开发需求数
    old_num_01 = Field(int, verbose_name='北京开发中心/续建',required=True)
    #上海开发中心新建准开发需求数
    new_num_02 = Field(int, verbose_name='上海开发中心/新建',required=True)
    #上海开发中心续建准开发需求数
    old_num_02 = Field(int, verbose_name='上海开发中心/续建',required=True)
    #厦门开发中心新建准开发需求数
    new_num_03 = Field(int, verbose_name='厦门开发中心/新建',required=True)
    #厦门开发中心续建准开发需求数
    old_num_03 = Field(int, verbose_name='厦门开发中心/续建',required=True)
    #广州开发中心新建准开发需求数
    new_num_04 = Field(int, verbose_name='广州开发中心/新建',required=True)
    #广州开发中心续建准开发需求数
    old_num_04 = Field(int, verbose_name='广州开发中心/续建',required=True)
    #成都开发中心新建准开发需求数
    new_num_05 = Field(int, verbose_name='成都开发中心/新建',required=True)
    #成都开发中心续建准开发需求数
    old_num_05 = Field(int, verbose_name='成都开发中心/续建',required=True)
    #武汉开发中心新建准开发需求数
    new_num_06 = Field(int, verbose_name='武汉开发中心/新建',required=True)
    #武汉开发中心续建准开发需求数
    old_num_06 = Field(int, verbose_name='武汉开发中心/续建',required=True)
    #深圳个贷支持中心新建准开发需求数
    new_num_07 = Field(int, verbose_name='深圳个贷支持中心/新建',required=True)
    #深圳个贷支持中心续建准开发需求数
    old_num_07 = Field(int, verbose_name='深圳个贷支持中心/续建',required=True)
    #香港支持中心新建准开发需求数
    new_num_08 = Field(int, verbose_name='香港支持中心/新建',required=True)
    #香港支持中心续建准开发需求数
    old_num_08 = Field(int, verbose_name='香港支持中心/续建',required=True)
    #任务类型
#    type = Field(CHAR, verbose_name='类型',max_length=1,required=True,)
    type = Field(CHAR, verbose_name='任务类型',max_length=1,required=True, choices=get_var('PARA/ASSIGNMENT_TYPE'))
    
    class Table:
        fields = [
            {'name':'type', 'width':100},
            {'name':'month', 'width':100},
            {'name':'new_num_01', 'width':50},
            {'name':'old_num_01', 'width':50},
            {'name':'new_num_02', 'width':50},
            {'name':'old_num_02', 'width':50},
            {'name':'new_num_03', 'width':50},
            {'name':'old_num_03', 'width':50},
            {'name':'new_num_04', 'width':50},
            {'name':'old_num_04', 'width':50},
            {'name':'new_num_05', 'width':50},
            {'name':'old_num_05', 'width':50},
            {'name':'new_num_06', 'width':50},
            {'name':'old_num_06', 'width':50},
            {'name':'new_num_07', 'width':50},
            {'name':'old_num_07', 'width':50},
            {'name':'new_num_08', 'width':50},
            {'name':'old_num_08', 'width':50},
            ]
    
#20101130新增按照开发中心统计任务季度报表
class Assignment_Quarter_Report_Kfzx(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表季度显示
    quarter = Field(CHAR, verbose_name='季度',max_length=8, required=True)
    #准开发需求总数
    #total_num = Field(int, verbose_name='准开发需求总数',required=True)
    #北京开发中心新建准开发需求数
    new_num_01 = Field(int, verbose_name='北京开发中心/新建',required=True)
    #北京开发中心续建准开发需求数
    old_num_01 = Field(int, verbose_name='北京开发中心/续建',required=True)
    #上海开发中心新建准开发需求数
    new_num_02 = Field(int, verbose_name='上海开发中心/新建',required=True)
    #上海开发中心续建准开发需求数
    old_num_02 = Field(int, verbose_name='上海开发中心/续建',required=True)
    #厦门开发中心新建准开发需求数
    new_num_03 = Field(int, verbose_name='厦门开发中心/新建',required=True)
    #厦门开发中心续建准开发需求数
    old_num_03 = Field(int, verbose_name='厦门开发中心/续建',required=True)
    #广州开发中心新建准开发需求数
    new_num_04 = Field(int, verbose_name='广州开发中心/新建',required=True)
    #广州开发中心续建准开发需求数
    old_num_04 = Field(int, verbose_name='广州开发中心/续建',required=True)
    #成都开发中心新建准开发需求数
    new_num_05 = Field(int, verbose_name='成都开发中心/新建',required=True)
    #成都开发中心续建准开发需求数
    old_num_05 = Field(int, verbose_name='成都开发中心/续建',required=True)
    #武汉开发中心新建准开发需求数
    new_num_06 = Field(int, verbose_name='武汉开发中心/新建',required=True)
    #武汉开发中心续建准开发需求数
    old_num_06 = Field(int, verbose_name='武汉开发中心/续建',required=True)
    #深圳个贷支持中心新建准开发需求数
    new_num_07 = Field(int, verbose_name='深圳个贷支持中心/新建',required=True)
    #深圳个贷支持中心续建准开发需求数
    old_num_07 = Field(int, verbose_name='深圳个贷支持中心/续建',required=True)
    #香港支持中心新建准开发需求数
    new_num_08 = Field(int, verbose_name='香港支持中心/新建',required=True)
    #香港支持中心续建准开发需求数
    old_num_08 = Field(int, verbose_name='香港支持中心/续建',required=True)
    #任务类型 
    type = Field(CHAR, verbose_name='任务类型',max_length=1,required=True, choices=get_var('PARA/ASSIGNMENT_TYPE'))

    class Table:
        fields = [
            {'name':'type', 'width':100},
            {'name':'quarter', 'width':100},
            {'name':'new_num_01', 'width':50},
            {'name':'old_num_01', 'width':50},
            {'name':'new_num_02', 'width':50},
            {'name':'old_num_02', 'width':50},
            {'name':'new_num_03', 'width':50},
            {'name':'old_num_03', 'width':50},
            {'name':'new_num_04', 'width':50},
            {'name':'old_num_04', 'width':50},
            {'name':'new_num_05', 'width':50},
            {'name':'old_num_05', 'width':50},
            {'name':'new_num_06', 'width':50},
            {'name':'old_num_06', 'width':50},
            {'name':'new_num_07', 'width':50},
            {'name':'old_num_07', 'width':50},
            {'name':'new_num_08', 'width':50},
            {'name':'old_num_08', 'width':50},
            ]

#20101130新增按照阶段统计任务书各阶段状态月度报表
class Assignment_Month_Report_Stage(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #本月在建任务书总数
    total_num = Field(int, verbose_name='总数',required=True)
    #预算申请正常状态
    ys_num_zc = Field(int, verbose_name='预算申请/正常',required=True)
    #预算申请异常状态
    ys_num_yc = Field(int, verbose_name='预算申请/异常',required=True)
    #采购申请正常状态
    cg_num_zc = Field(int, verbose_name='采购申请/正常',required=True)
    #采购申请异常状态
    cg_num_yc = Field(int, verbose_name='采购申请/异常',required=True)
    #实施正常状态
    ss_num_zc = Field(int, verbose_name='实施/正常',required=True)
    #实施异常状态
    ss_num_yc = Field(int, verbose_name='实施/异常',required=True)
    #推广正常状态
    tg_num_zc = Field(int, verbose_name='推广/正常',required=True)
    #推广异常状态
    tg_num_yc = Field(int, verbose_name='推广/异常',required=True)
    #验收正常状态
    yans_num_zc = Field(int, verbose_name='验收/正常',required=True)
    #验收异常状态
    yans_num_yc = Field(int, verbose_name='验收/异常',required=True)
    #决算正常状态
    js_num_zc = Field(int, verbose_name='决算/正常',required=True)
    #决算异常状态
    js_num_yc = Field(int, verbose_name='决算/异常',required=True)
    #本月完成
    wc_num_zc = Field(int, verbose_name='完成',required=True)    
    #任务类型
    type = Field(CHAR, verbose_name='类型',max_length=1,required=True,)
    kfzx = Field(int, verbose_name='开发中心编号',required=True)    
    
    class Table:
        fields = [
            {'name':'month', 'width':100},
            {'name':'total_num', 'width':50},
            {'name':'ys_num_zc', 'width':50},
            {'name':'ys_num_yc', 'width':50},
            {'name':'cg_num_zc', 'width':50},
            {'name':'cg_num_yc', 'width':50},
            {'name':'ss_num_zc', 'width':50},
            {'name':'ss_num_yc', 'width':50},
            {'name':'tg_num_zc', 'width':50},
            {'name':'tg_num_yc', 'width':50},
            {'name':'yans_num_zc', 'width':50},
            {'name':'yans_num_yc', 'width':50},
            {'name':'js_num_zc', 'width':50},
            {'name':'js_num_yc', 'width':50},
            {'name':'wc_num_zc', 'width':50},
            ]

#20101130新增按照阶段统计非项目任务书各阶段状态月度报表
class Assignment_Month_Report_Stage_Fxm(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #本月在建任务书总数
    total_num = Field(int, verbose_name='总数',required=True)
    #供应商资源池分配正常状态
    gys_num_zc = Field(int, verbose_name='供应商资源池分配/正常',required=True)
    #供应商资源池分配异常状态
    gys_num_yc = Field(int, verbose_name='供应商资源池分配/异常',required=True)
    #实施正常状态
    ss_num_zc = Field(int, verbose_name='实施/正常',required=True)
    #实施异常状态
    ss_num_yc = Field(int, verbose_name='实施/异常',required=True)
    #验收正常状态
    yans_num_zc = Field(int, verbose_name='验收/正常',required=True)
    #验收异常状态
    yans_num_yc = Field(int, verbose_name='验收/异常',required=True)
    #开发任务付款正常状态
    kffk_num_zc = Field(int, verbose_name='开发任务付款/正常',required=True)
    #开发任务付款异常状态
    kffk_num_yc = Field(int, verbose_name='开发任务付款/异常',required=True)
    #本月完成
    wc_num_zc = Field(int, verbose_name='完成',required=True)    
    kfzx = Field(int, verbose_name='开发中心编号',required=True)    


    class Table:
        fields = [
            {'name':'month', 'width':100},
            {'name':'total_num', 'width':50},
            {'name':'gys_num_zc', 'width':50},
            {'name':'gys_num_yc', 'width':50},
            {'name':'ss_num_zc', 'width':50},
            {'name':'ss_num_yc', 'width':50},
            {'name':'yans_num_zc', 'width':50},
            {'name':'yans_num_yc', 'width':50},
            {'name':'kffk_num_zc', 'width':50},
            {'name':'kffk_num_yc', 'width':50},
            {'name':'wc_num_zc', 'width':50},
            ]

#20101201新增按照开发中心统计项目异常情况月度报表
class Assignment_Month_Report_Kfzx_Xmyc(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #准开发需求总数
    #total_num = Field(int, verbose_name='准开发需求总数',required=True)
    #北京开发中心延迟项目数
    yc_num_01 = Field(int, verbose_name='北京开发中心/延迟',required=True)
    #北京开发中心异常终止项目数
    yczz_num_01 = Field(int, verbose_name='北京开发中心/异常终止',required=True)
    #北京开发中心暂停项目数
    zt_num_01 = Field(int, verbose_name='北京开发中心/暂停',required=True)
    #上海开发中心延迟项目数
    yc_num_02 = Field(int, verbose_name='上海开发中心/延迟',required=True)
    #上海开发中心异常终止数
    yczz_num_02 = Field(int, verbose_name='上海开发中心/异常终止',required=True)
    #上海开发中心暂停数
    zt_num_02 = Field(int, verbose_name='上海开发中心/暂停',required=True)
    #厦门开发中心延迟项目数
    yc_num_03 = Field(int, verbose_name='厦门开发中心/延迟',required=True)
    #厦门开发中心异常终止项目数
    yczz_num_03 = Field(int, verbose_name='厦门开发中心/异常终止',required=True)
    #厦门开发中心暂停项目数
    zt_num_03 = Field(int, verbose_name='厦门开发中心/暂停',required=True)
    #广州开发中心延迟项目数
    yc_num_04 = Field(int, verbose_name='广州开发中心/延迟',required=True)
    #广州开发中心异常终止项目数
    yczz_num_04 = Field(int, verbose_name='广州开发中心/异常终止',required=True)
    #广州开发中心暂停项目数
    zt_num_04 = Field(int, verbose_name='广州开发中心/暂停',required=True)
    #成都开发中心延迟项目数
    yc_num_05 = Field(int, verbose_name='成都开发中心/延迟',required=True)
    #成都开发中心异常终止项目数
    yczz_num_05 = Field(int, verbose_name='成都开发中心/异常终止',required=True)
    #成都开发中心暂停项目数
    zt_num_05 = Field(int, verbose_name='成都开发中心/暂停',required=True)
    #武汉开发中心延迟项目数
    yc_num_06 = Field(int, verbose_name='武汉开发中心/延迟',required=True)
    #武汉开发中心异常终止项目数
    yczz_num_06 = Field(int, verbose_name='武汉开发中心/异常终止',required=True)
    #武汉开发中心暂停项目数
    zt_num_06 = Field(int, verbose_name='武汉开发中心/暂停',required=True)
    #深圳个贷支持中心延迟项目数
    yc_num_07 = Field(int, verbose_name='深圳个贷支持中心/延迟',required=True)
    #深圳个贷支持中心异常终止项目数
    yczz_num_07 = Field(int, verbose_name='深圳个贷支持中心/异常终止',required=True)
    #深圳个贷支持中心暂停项目数
    zt_num_07 = Field(int, verbose_name='深圳个贷支持中心/暂停',required=True)
    #香港支持中心延迟项目数
    yc_num_08 = Field(int, verbose_name='香港支持中心/延迟',required=True)
    #香港支持中心异常终止项目数
    yczz_num_08 = Field(int, verbose_name='香港支持中心/异常终止',required=True)
    #香港支持中心暂停项目数
    zt_num_08 = Field(int, verbose_name='香港支持中心/暂停',required=True)
    #任务类型
    type = Field(CHAR, verbose_name='类型',max_length=1,required=True,)
    
    class Table:
        fields = [
            {'name':'month', 'width':100},
            {'name':'yc_num_01', 'width':50},
            {'name':'yczz_num_01', 'width':50},
            {'name':'zt_num_01', 'width':50},
            {'name':'yc_num_02', 'width':50},
            {'name':'yczz_num_02', 'width':50},
            {'name':'zt_num_02', 'width':50},
            {'name':'yc_num_03', 'width':50},
            {'name':'yczz_num_03', 'width':50},
            {'name':'zt_num_03', 'width':50},
            {'name':'yc_num_04', 'width':50},
            {'name':'yczz_num_04', 'width':50},
            {'name':'zt_num_04', 'width':50},
            {'name':'yc_num_05', 'width':50},
            {'name':'yczz_num_05', 'width':50},
            {'name':'zt_num_05', 'width':50},
            {'name':'yc_num_06', 'width':50},
            {'name':'yczz_num_06', 'width':50},
            {'name':'zt_num_06', 'width':50},
            {'name':'yc_num_07', 'width':50},
            {'name':'yczz_num_07', 'width':50},
            {'name':'zt_num_07', 'width':50},
            {'name':'yc_num_08', 'width':50},
            {'name':'yczz_num_08', 'width':50},
            {'name':'zt_num_08', 'width':50},
            ]
  
#20101201新增项目延迟情况原因分类月度报表
class Assignment_Month_Report_Xmycfx(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #项目延迟原因为预算延迟
    delay_num_01 = Field(int, verbose_name='预算延迟',required=True)
    #项目延迟原因为采购延迟
    delay_num_02 = Field(int, verbose_name='采购延迟',required=True)
    #项目延迟原因为技术复杂度超预期
    delay_num_03 = Field(int, verbose_name='技术复杂度超预期',required=True)
    #项目延迟原因为需求不锁定
    delay_num_04 = Field(int, verbose_name='需求不锁定',required=True)
    #项目延迟原因为验收延迟
    delay_num_05 = Field(int, verbose_name='验收延迟',required=True)
    #项目延迟原因为决算延迟
    delay_num_06 = Field(int, verbose_name='决算延迟',required=True)    
    #项目延迟原因为其他
    delay_num_09 = Field(int, verbose_name='其他',required=True)
    #项目延迟数量
#    delay_num = Field(int, verbose_name='项目延迟数量',required=True)
    #开发中心
#    kfzx = Field(int, verbose_name='开发中心',required=True)
    kfzx = Reference('kfzx', verbose_name='开发中心', required=True)
    #项目任务类型
    type = Field(CHAR, verbose_name='类型',max_length=1,required=True,)
    
    class Table:
        fields = [
            {'name':'month', 'width':100},
            {'name':'delay_num_01', 'width':50},
            {'name':'delay_num_02', 'width':50},
            {'name':'delay_num_03', 'width':50},
            {'name':'delay_num_04', 'width':50},
            {'name':'delay_num_05', 'width':50},
            {'name':'delay_num_06', 'width':50},           
            {'name':'delay_num_09', 'width':50},
            {'name':'kfzx', 'width':50},
            ]

class Requirement_Month_Report_Stage(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #总数
    total = Field(int, verbose_name='总数',required=True)
    #新建/可研阶段
    new_ky = Field(int, verbose_name='新建/可研',required=True)
    #新建/实施
    new_ss = Field(int, verbose_name='新建/实施',required=True)
    #新建/完成
    new_wc = Field(int, verbose_name='新建/完成',required=True)
    #新建/异常
    new_yc = Field(int, verbose_name='新建/异常',required=True)
    #新建/暂停
    new_zt = Field(int, verbose_name='新建/暂停',required=True)
    #续建/可研
    old_ky = Field(int, verbose_name='续建/可研',required=True)
    old_ss = Field(int, verbose_name='续建/实施',required=True)
    old_wc = Field(int, verbose_name='续建/完成',required=True)  
    #续建/异常
    old_yc = Field(int, verbose_name='续建/异常',required=True)
    #续建/暂停
    old_zt = Field(int, verbose_name='续建/暂停',required=True)
    kfzx = Field(int, verbose_name='开发中心编号',required=True)


    class Table:
        fields = [
            {'name':'month', 'width':100},
            {'name':'total', 'width':100},
            {'name':'new_ky',  'width':100},
            {'name':'new_ss',  'width':100},
            {'name':'new_wc', 'width':100},
            {'name':'new_yc', 'width':100},
            {'name':'new_zt', 'width':100},            
            {'name':'old_ky', 'width':100},
            {'name':'old_ss', 'width':100},
            {'name':'old_wc', 'width':100},
            {'name':'old_yc', 'width':100},
            {'name':'old_zt', 'width':100},            
        ]
#按系统维度统计准开发需求数量
class Requirement_Month_Report_System(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
     #新建/实施
#    new_num = Field(int, verbose_name='新增准开发需求数量',required=True)
    #续建/可研
#    old_num = Field(int, verbose_name='续建准开发需求数量',required=True)
    num = Field(int, verbose_name='准开发需求数量',required=True)
    #执行系统
    system_id = Field(CHAR, verbose_name='执行系统',max_length=6,required=True)
    kfzx = Field(int, verbose_name='开发中心编号',required=True)

    class Table:
        fields = [
            {'name':'month', 'width':100},
#            {'name':'new_num', 'width':100},
#            {'name':'old_num', 'width':100},
            {'name':'num', 'width':100},
            {'name':'system_id', 'width':100},            
        ]

#按照任务所处阶段统计版本数
class Version_Month_Report_Stage(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #总数
    total_num = Field(int, verbose_name='总数',required=True)
    #未开始阶段
    version_num_00 = Field(int, verbose_name='未开始',required=True)
    #需求分析阶段
    version_num_02 = Field(int, verbose_name='需求分析',required=True)
    #概要设计阶段
    version_num_03 = Field(int, verbose_name='概要设计',required=True)
    #详细设计阶段
    version_num_04 = Field(int, verbose_name='详细设计',required=True)
    #开发阶段
    version_num_05 = Field(int, verbose_name='开发',required=True)
    #内部测试阶段
    version_num_06 = Field(int, verbose_name='内部测试',required=True)
    #功能集成测试阶段
    version_num_07 = Field(int, verbose_name='功能集成测试',required=True)
    #非功能集成测试阶段
    version_num_08 = Field(int, verbose_name='非功能集成测试',required=True)  
    #用户测试阶段
    version_num_09 = Field(int, verbose_name='用户测试',required=True) 
    #版本验证测试阶段
    version_num_10 = Field(int, verbose_name='版本验证测试',required=True)
    #版本投产
    version_num_11 = Field(int, verbose_name='版本投产',required=True) 
    #任务完成
    version_num_FN = Field(int, verbose_name='完成',required=True)


    class Table:
        fields = [
            {'name':'month', 'width':100}, 
            {'name':'total_num', 'width':50},     
            {'name':'version_num_00', 'width':100},
            {'name':'version_num_02', 'width':100},
            {'name':'version_num_03', 'width':100},
            {'name':'version_num_04', 'width':100},
            {'name':'version_num_05', 'width':100},
            {'name':'version_num_06', 'width':100},
            {'name':'version_num_07', 'width':100},
            {'name':'version_num_08', 'width':100},            
            {'name':'version_num_09', 'width':100},
            {'name':'version_num_10', 'width':100},
            {'name':'version_num_11', 'width':100},
            {'name':'version_num_FN', 'width':100},   
        ]

#20101203新增按照开发中心统计版本异常情况月度报表
class Version_Month_Report_Kfzx_Bbyc(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #准开发需求总数
    #total_num = Field(int, verbose_name='版本总数',required=True)
    #北京开发中心延迟版本数
    yc_num_01 = Field(int, verbose_name='北京开发中心/延迟',required=True)
    #北京开发中心异常终止版本数
    yczz_num_01 = Field(int, verbose_name='北京开发中心/异常终止',required=True)
    #北京开发中心暂停版本数
    zt_num_01 = Field(int, verbose_name='北京开发中心/暂停',required=True)
    #上海开发中心延迟版本数
    yc_num_02 = Field(int, verbose_name='上海开发中心/延迟',required=True)
    #上海开发中心异常终止数
    yczz_num_02 = Field(int, verbose_name='上海开发中心/异常终止',required=True)
    #上海开发中心暂停数
    zt_num_02 = Field(int, verbose_name='上海开发中心/暂停',required=True)
    #厦门开发中心延迟版本数
    yc_num_03 = Field(int, verbose_name='厦门开发中心/延迟',required=True)
    #厦门开发中心异常终止版本数
    yczz_num_03 = Field(int, verbose_name='厦门开发中心/异常终止',required=True)
    #厦门开发中心暂停版本数
    zt_num_03 = Field(int, verbose_name='厦门开发中心/暂停',required=True)
    #广州开发中心延迟版本数
    yc_num_04 = Field(int, verbose_name='广州开发中心/延迟',required=True)
    #广州开发中心异常终止版本数
    yczz_num_04 = Field(int, verbose_name='广州开发中心/异常终止',required=True)
    #广州开发中心暂停版本数
    zt_num_04 = Field(int, verbose_name='广州开发中心/暂停',required=True)
    #成都开发中心延迟版本数
    yc_num_05 = Field(int, verbose_name='成都开发中心/延迟',required=True)
    #成都开发中心异常终止版本数
    yczz_num_05 = Field(int, verbose_name='成都开发中心/异常终止',required=True)
    #成都开发中心暂停版本数
    zt_num_05 = Field(int, verbose_name='成都开发中心/暂停',required=True)
    #武汉开发中心延迟版本数
    yc_num_06 = Field(int, verbose_name='武汉开发中心/延迟',required=True)
    #武汉开发中心异常终止版本数
    yczz_num_06 = Field(int, verbose_name='武汉开发中心/异常终止',required=True)
    #武汉开发中心暂停版本数
    zt_num_06 = Field(int, verbose_name='武汉开发中心/暂停',required=True)
    #深圳个贷支持中心延迟版本数
    yc_num_07 = Field(int, verbose_name='深圳个贷支持中心/延迟',required=True)
    #深圳个贷支持中心异常终止版本数
    yczz_num_07 = Field(int, verbose_name='深圳个贷支持中心/异常终止',required=True)
    #深圳个贷支持中心暂停版本数
    zt_num_07 = Field(int, verbose_name='深圳个贷支持中心/暂停',required=True)
    #香港支持中心延迟版本数
    yc_num_08 = Field(int, verbose_name='香港支持中心/延迟',required=True)
    #香港支持中心异常终止版本数
    yczz_num_08 = Field(int, verbose_name='香港支持中心/异常终止',required=True)
    #香港支持中心暂停版本数
    zt_num_08 = Field(int, verbose_name='香港支持中心/暂停',required=True)
    #任务类型
#    type = Field(CHAR, verbose_name='类型',max_length=1,required=True,)
    
    class Table:
        fields = [
            {'name':'month', 'width':100},
            {'name':'yc_num_01', 'width':50},
            {'name':'yczz_num_01', 'width':50},
            {'name':'zt_num_01', 'width':50},
            {'name':'yc_num_02', 'width':50},
            {'name':'yczz_num_02', 'width':50},
            {'name':'zt_num_02', 'width':50},
            {'name':'yc_num_03', 'width':50},
            {'name':'yczz_num_03', 'width':50},
            {'name':'zt_num_03', 'width':50},
            {'name':'yc_num_04', 'width':50},
            {'name':'yczz_num_04', 'width':50},
            {'name':'zt_num_04', 'width':50},
            {'name':'yc_num_05', 'width':50},
            {'name':'yczz_num_05', 'width':50},
            {'name':'zt_num_05', 'width':50},
            {'name':'yc_num_06', 'width':50},
            {'name':'yczz_num_06', 'width':50},
            {'name':'zt_num_06', 'width':50},
            {'name':'yc_num_07', 'width':50},
            {'name':'yczz_num_07', 'width':50},
            {'name':'zt_num_07', 'width':50},
            {'name':'yc_num_08', 'width':50},
            {'name':'yczz_num_08', 'width':50},
            {'name':'zt_num_08', 'width':50},
            ]

#20101203新增版本延迟情况原因分类月度报表
class Version_Month_Report_Bbycfx(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #版本延迟原因为预算延迟
    delay_num_01 = Field(int, verbose_name='预算延迟',required=True)
    #版本延迟原因为采购延迟
    delay_num_02 = Field(int, verbose_name='采购延迟',required=True)
    #版本延迟原因为技术复杂度超预期
    delay_num_03 = Field(int, verbose_name='技术复杂度超预期',required=True)
    #版本延迟原因为需求不锁定
    delay_num_04 = Field(int, verbose_name='需求不锁定',required=True)
    #版本延迟原因为验收延迟
    delay_num_05 = Field(int, verbose_name='验收延迟',required=True)
    #版本延迟原因为决算延迟
    delay_num_06 = Field(int, verbose_name='决算延迟',required=True)    
    #版本延迟原因为其他
    delay_num_09 = Field(int, verbose_name='其他',required=True)
    kfzx = Reference('kfzx', verbose_name='开发中心', required=True)
  
    class Table:
        fields = [
            {'name':'month', 'width':100},
            {'name':'delay_num_01', 'width':50},
            {'name':'delay_num_02', 'width':50},
            {'name':'delay_num_03', 'width':50},
            {'name':'delay_num_04', 'width':50},
            {'name':'delay_num_05', 'width':50},
            {'name':'delay_num_06', 'width':50},           
            {'name':'delay_num_09', 'width':50},
            {'name':'kfzx', 'width':50},
            ]

#准开发需求按照阶段维度统计的季度报表
class Requirement_Quarter_Report_Stage(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    quarter = Field(CHAR, verbose_name='季度',max_length=8, required=True)
    #总数
    total = Field(int, verbose_name='总数',required=True)
    #新建/可研阶段
    new_ky = Field(int, verbose_name='新建/可研',required=True)
    #新建/实施
    new_ss = Field(int, verbose_name='新建/实施',required=True)
    #新建/完成
    new_wc = Field(int, verbose_name='新建/完成',required=True)
    #新建/异常
    new_yc = Field(int, verbose_name='新建/异常',required=True)
    #新建/暂停
    new_zt = Field(int, verbose_name='新建/暂停',required=True)
    #续建/可研
    old_ky = Field(int, verbose_name='续建/可研',required=True)
    old_ss = Field(int, verbose_name='续建/实施',required=True)
    old_wc = Field(int, verbose_name='续建/完成',required=True)  
    #续建/异常
    old_yc = Field(int, verbose_name='续建/异常',required=True)
    #续建/暂停
    old_zt = Field(int, verbose_name='续建/暂停',required=True)
    kfzx = Field(int, verbose_name='开发中心编号',required=True)


    class Table:
        fields = [
            {'name':'quarter', 'width':100},
            {'name':'total', 'width':100},
            {'name':'new_ky',  'width':100},
            {'name':'new_ss',  'width':100},
            {'name':'new_wc', 'width':100},
            {'name':'new_yc', 'width':100},
            {'name':'new_zt', 'width':100},            
            {'name':'old_ky', 'width':100},
            {'name':'old_ss', 'width':100},
            {'name':'old_wc', 'width':100},
            {'name':'old_yc', 'width':100},
            {'name':'old_zt', 'width':100},            
        ]
#按系统维度统计准开发需求数量季度报表
class Requirement_Quarter_Report_System(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    quarter = Field(CHAR, verbose_name='季度',max_length=8, required=True)
    num = Field(int, verbose_name='准开发需求数量',required=True)
    #执行系统
    system_id = Field(CHAR, verbose_name='执行系统',max_length=6,required=True)
    kfzx = Field(int, verbose_name='开发中心编号',required=True)

    class Table:
        fields = [
            {'name':'quarter', 'width':100},
            {'name':'num', 'width':100},
            {'name':'system_id', 'width':100},            
        ]

#按照阶段统计任务书各阶段状态季度报表
class Assignment_Quarter_Report_Stage(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    quarter = Field(CHAR, verbose_name='季度',max_length=8, required=True)
    #本月在建任务书总数
    total_num = Field(int, verbose_name='总数',required=True)
    #预算申请正常状态
    ys_num_zc = Field(int, verbose_name='预算申请/正常',required=True)
    #预算申请异常状态
    ys_num_yc = Field(int, verbose_name='预算申请/异常',required=True)
    #采购申请正常状态
    cg_num_zc = Field(int, verbose_name='采购申请/正常',required=True)
    #采购申请异常状态
    cg_num_yc = Field(int, verbose_name='采购申请/异常',required=True)
    #实施正常状态
    ss_num_zc = Field(int, verbose_name='实施/正常',required=True)
    #实施异常状态
    ss_num_yc = Field(int, verbose_name='实施/异常',required=True)
    #推广正常状态
    tg_num_zc = Field(int, verbose_name='推广/正常',required=True)
    #推广异常状态
    tg_num_yc = Field(int, verbose_name='推广/异常',required=True)
    #验收正常状态
    yans_num_zc = Field(int, verbose_name='验收/正常',required=True)
    #验收异常状态
    yans_num_yc = Field(int, verbose_name='验收/异常',required=True)
    #决算正常状态
    js_num_zc = Field(int, verbose_name='决算/正常',required=True)
    #决算异常状态
    js_num_yc = Field(int, verbose_name='决算/异常',required=True)
    #本月完成
    wc_num_zc = Field(int, verbose_name='完成',required=True)    
    #任务类型
    type = Field(CHAR, verbose_name='类型',max_length=1,required=True,)
    kfzx = Field(int, verbose_name='开发中心编号',required=True)
    
    
    class Table:
        fields = [
            {'name':'quarter', 'width':100},
            {'name':'total_num', 'width':50},
            {'name':'ys_num_zc', 'width':50},
            {'name':'ys_num_yc', 'width':50},
            {'name':'cg_num_zc', 'width':50},
            {'name':'cg_num_yc', 'width':50},
            {'name':'ss_num_zc', 'width':50},
            {'name':'ss_num_yc', 'width':50},
            {'name':'tg_num_zc', 'width':50},
            {'name':'tg_num_yc', 'width':50},
            {'name':'yans_num_zc', 'width':50},
            {'name':'yans_num_yc', 'width':50},
            {'name':'js_num_zc', 'width':50},
            {'name':'js_num_yc', 'width':50},
            {'name':'wc_num_zc', 'width':50},
            ]

#按照阶段统计非项目任务书各阶段状态季度报表
class Assignment_Quarter_Report_Stage_Fxm(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    quarter = Field(CHAR, verbose_name='月份',max_length=4, required=True)
    #本月在建任务书总数
    total_num = Field(int, verbose_name='总数',required=True)
    #供应商资源池分配正常状态
    gys_num_zc = Field(int, verbose_name='供应商资源池分配/正常',required=True)
    #供应商资源池分配异常状态
    gys_num_yc = Field(int, verbose_name='供应商资源池分配/异常',required=True)
    #实施正常状态
    ss_num_zc = Field(int, verbose_name='实施/正常',required=True)
    #实施异常状态
    ss_num_yc = Field(int, verbose_name='实施/异常',required=True)
    #验收正常状态
    yans_num_zc = Field(int, verbose_name='验收/正常',required=True)
    #验收异常状态
    yans_num_yc = Field(int, verbose_name='验收/异常',required=True)
    #开发任务付款正常状态
    kffk_num_zc = Field(int, verbose_name='开发任务付款/正常',required=True)
    #开发任务付款异常状态
    kffk_num_yc = Field(int, verbose_name='开发任务付款/异常',required=True)
    #本月完成
    wc_num_zc = Field(int, verbose_name='完成',required=True)    
    kfzx = Field(int, verbose_name='开发中心编号',required=True)    


    class Table:
        fields = [
            {'name':'quarter', 'width':100},
            {'name':'total_num', 'width':50},
            {'name':'gys_num_zc', 'width':50},
            {'name':'gys_num_yc', 'width':50},
            {'name':'ss_num_zc', 'width':50},
            {'name':'ss_num_yc', 'width':50},
            {'name':'yans_num_zc', 'width':50},
            {'name':'yans_num_yc', 'width':50},
            {'name':'kffk_num_zc', 'width':50},
            {'name':'kffk_num_yc', 'width':50},
            {'name':'wc_num_zc', 'width':50},
            ]

#按照任务所处阶段统计版本数季度报表
class Version_Quarter_Report_Stage(Model):
    #报表日期
    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
    #报表月份显示
    quarter = Field(CHAR, verbose_name='季度',max_length=8, required=True)
    #总数
    total_num = Field(int, verbose_name='总数',required=True)
    #未开始阶段
    version_num_00 = Field(int, verbose_name='未开始',required=True)
    #需求分析阶段
    version_num_02 = Field(int, verbose_name='需求分析',required=True)
    #概要设计阶段
    version_num_03 = Field(int, verbose_name='概要设计',required=True)
    #详细设计阶段
    version_num_04 = Field(int, verbose_name='详细设计',required=True)
    #开发阶段
    version_num_05 = Field(int, verbose_name='开发',required=True)
    #内部测试阶段
    version_num_06 = Field(int, verbose_name='内部测试',required=True)
    #功能集成测试阶段
    version_num_07 = Field(int, verbose_name='功能集成测试',required=True)
    #非功能集成测试阶段
    version_num_08 = Field(int, verbose_name='非功能集成测试',required=True)  
    #用户测试阶段
    version_num_09 = Field(int, verbose_name='用户测试',required=True) 
    #版本验证测试阶段
    version_num_10 = Field(int, verbose_name='版本验证测试',required=True)
    #版本投产
    version_num_11 = Field(int, verbose_name='版本投产',required=True) 
    #任务完成
    version_num_FN = Field(int, verbose_name='完成',required=True)


    class Table:
        fields = [
            {'name':'quarter', 'width':100}, 
            {'name':'total_num', 'width':50},     
            {'name':'version_num_00', 'width':100},
            {'name':'version_num_02', 'width':100},
            {'name':'version_num_03', 'width':100},
            {'name':'version_num_04', 'width':100},
            {'name':'version_num_05', 'width':100},
            {'name':'version_num_06', 'width':100},
            {'name':'version_num_07', 'width':100},
            {'name':'version_num_08', 'width':100},            
            {'name':'version_num_09', 'width':100},
            {'name':'version_num_10', 'width':100},
            {'name':'version_num_11', 'width':100},
            {'name':'version_num_FN', 'width':100},   
        ]

#20110112新增资源按系统维度统计月度报表
#class Resource_Month_Report_System(Model):
#    #报表日期
#    month_date = Field(datetime.date, verbose_name='报表日期',required=True)
#    #报表月份显示
#    month = Field(CHAR, verbose_name='月份',max_length=4, required=True)
#    #版本延迟原因为预算延迟
#    zx_num = Field(int, verbose_name='中心工作量',required=True)
#    #版本延迟原因为采购延迟
#    gs_num = Field(int, verbose_name='公司工作量',required=True)
#    sys_name = Field(CHAR, verbose_name='中文名称', max_length=255, required=True)
#    kfzx = Reference('kfzx', verbose_name='开发中心', required=True)
#  
#    class Table:
#        fields = [
#            {'name':'sys_name', 'width':100},
#            {'name':'month', 'width':100},
#            {'name':'zx_num', 'width':50},
#            {'name':'gs_num', 'width':50},
#            ]

#管理报表-准开发需求进度跟踪周报
class manage_requirement_week(Model):    
    req_id = Field(int,verbose_name='准开发需求编号')
    plan_stat = Field(float,verbose_name='计划进度完成比例')
    inner_resource_num = Field(float,verbose_name='中心实际投入资源')
    outer_resource_num = Field(float,verbose_name='公司实际投入资源')
    inner_resource_input = Field(float,verbose_name='中心实际投入资源较计划')
    outer_resource_input = Field(float,verbose_name='公司实际投入资源较计划')
    delay_stat = Field(TEXT, verbose_name='里程碑延迟情况')
    delay_reason = Field(TEXT, verbose_name='延迟原因')
    finish_stat = Field(bool, verbose_name='全部实施任务是否完成')
    task_amount = Field(int, verbose_name='任务数量')
    new_task_amount = Field(int, verbose_name='新增任务数量')
    report_date = Field(datetime.date, verbose_name='报表时间', required=True)
    report_type =  Field(CHAR, verbose_name='报表类型', max_length=1, choices=get_var('PARA/REPORT_TYPE'))
    delay_flag = Field(bool, verbose_name='是否延迟')
    version_amount = Field(int, verbose_name='投产版本数量')        
    req_name = Field(str, verbose_name='标题', max_length=255)
    kfzx = Field(int,verbose_name='主系统所对应开发中心')
    tx = Field(int,verbose_name='条线')
    t_project = Field(int, verbose_name='采用项目方式管理')
    t_nproject = Field(int, verbose_name='采用非项目任务方式管理')
    t_nassignment = Field(int, verbose_name='采用无任务书开发任务方式管理')
    t_undetermined = Field(int, verbose_name='方式待定')
    t_delay_flag = Field(int, verbose_name='准开发需求延迟')
    
    @classmethod
    def OnInit(cls):
        Index('manage_requirement_week_indx', cls.c.report_date, cls.c.report_type, cls.c.req_id, unique=True)
    
    
#管理报表-准开发需求进度跟踪周报
#class manage_requirement_week_tmp(Model):    
#    req_id = Field(int,verbose_name='准开发需求id')

#任务书信息表明细表
class Assignment_report_detail(Model):  
    __verbose_name__ = u'任务书明细'
    
    ass = Field(int, verbose_name='任务书id')    
    ass_id  = Field(CHAR, verbose_name='任务书编号', max_length=20)
    name = Field(str, verbose_name='任务书名称',required=True)
    kfzx = Field(int, verbose_name='开发中心')
    tx = Field(int, verbose_name='条线', required=True)
    type = Field(CHAR, verbose_name='类型',max_length=1,required=True, choices=get_var('PARA/ASSIGNMENT_TYPE'))
    stage = Field(CHAR, verbose_name='所处阶段', max_length=4, required=True, choices=[])
    release_date = Field(datetime.date, verbose_name='下达时间', required=True)
    begin_date = Field(datetime.date, verbose_name='开始时间', required=True)
    end_date = Field(datetime.date, verbose_name='结束时间', required=True)
    js_date = Field(datetime.date, verbose_name='决算开始时间')
    finish_date = Field(datetime.date, verbose_name='实际完成时间')
    status = Field(CHAR, max_length=1, verbose_name='执行情况', required=True, choices=get_var('PARA/ASSIGNMENT_STATUS'), default='1')
    delay_classes = Field(CHAR, max_length=2, verbose_name='延迟原因分类', choices=get_var('PARA/ASSIGNMENT_DELAY_CLASSES'))
    delay_reason = Field(TEXT, verbose_name='延迟原因说明')
    advanced_if = Field(bool, verbose_name='是否提前进场')
    risk_if = Field(bool, verbose_name='是否存在风险')
    risk_reason = Field(TEXT, verbose_name='风险说明')
    system = Field(int, verbose_name='对应系统')
    t_implement  = Field(int, verbose_name='周期内实施中')
    t_js  = Field(int, verbose_name='周期内决算')
    t_ys  = Field(int, verbose_name='周期内验收')
    t_finish  = Field(int, verbose_name='周期内完成')
    t_delay  = Field(int, verbose_name='结果延迟')
    t_task_delay  = Field(int, verbose_name='过程延迟')
    t_status  = Field(int, verbose_name='暂停或终止')
    report_date = Field(datetime.date, verbose_name='报表时间', required=True)
    report_type =  Field(CHAR, verbose_name='报表类型', max_length=1, choices=get_var('PARA/REPORT_TYPE'))
    requirements = ManyToMany('requirement', verbose_name='对应准开发需求')
    task_delay = Field(TEXT, verbose_name='延迟任务编号')
    max_amount  = Field(int, verbose_name='最大工作量')
    @classmethod
    def OnInit(cls):
        Index('assignment_report_detail_indx', cls.c.report_date, cls.c.report_type, cls.c.ass_id, unique=True)
    class Table:
        fields = [
            {'name':'ass_id',  'width':90},            
            {'name':'name', 'width':100},
            {'name':'kfzx',  'width':60},
            {'name':'tx',  'width':40},
            {'name':'type',  'width':40},
            {'name':'stage',  'width':80},
            {'name':'release_date',  'width':70},
            {'name':'begin_date',  'width':70},
            {'name':'end_date',  'width':70},
            {'name':'js_date',  'width':80},
            {'name':'finish_date',  'width':80},            
            {'name':'t_delay',  'width':50},
            {'name':'t_task_delay',  'width':50},
            {'name':'task_delay',  'width':110},            
        ]
    
    
#开发类任务表01-04,状态表（05可研类工作量建议在requirement里面体现）
class Tasks_develop_report_detail(Model):    
    __verbose_name__ = u'开发任务明细'
    
    task = Field(int, verbose_name='任务id')
    task_id = Field(CHAR, verbose_name='任务编号', max_length=18)
    name = Field(str, verbose_name='开发任务名称', max_length=255, required=True)
    task_sys = Field(int,  verbose_name='所属系统')
    task_type = Field(CHAR, verbose_name='任务类型',max_length=2,required=True, choices=get_var('PARA/TASK_TYPE_DEVELOP'))
    requirement = Field(int,verbose_name='所属准开发需求') 
    begin_time = Field(datetime.date, verbose_name='任务开始时间', required=True)
    end_time = Field(datetime.date, verbose_name='任务结束时间', required=True)
    stage = Field(CHAR, verbose_name='所处阶段',max_length=2,choices=get_var('PARA/TASK_STAGE'))
    stage_enterTime = Field(datetime.date, verbose_name='阶段进入时间')
    version_headerId = Field(int,verbose_name='牵头版本任务ID')
    status = Field(CHAR, max_length=1, verbose_name='任务执行情况', required=True, choices=get_var('PARA/TASK_STATUS'))
    delay_classes = Field(CHAR, max_length=2, verbose_name='延迟原因分类', choices=get_var('PARA/TASK_DELAY_CLASSES'))
    delay_reason = Field(TEXT, verbose_name='延迟原因说明')
    risk_if = Field(bool, verbose_name='是否存在风险')
    delay_milestone = Field(TEXT, verbose_name='延迟或提前里程碑')
    risk_reason = Field(TEXT, verbose_name='风险说明')
    memo = Field(TEXT, verbose_name='备注')    
    kfzx = Reference('kfzx', verbose_name='开发中心')
    tx  = Field(int, verbose_name='条线')
    assignment = Field(int, verbose_name='资源来源任务书')
    version_date = Field(datetime.date, verbose_name='投产时间')
    t_implement  = Field(int, verbose_name='周期内实施中')
    t_finish  = Field(int, verbose_name='周期内完成')
    t_delay  = Field(int, verbose_name='延迟或提前')
    t_status  = Field(int, verbose_name='暂停或终止')
    t_version  = Field(int, verbose_name='是否本周投产')
    report_date = Field(datetime.date, verbose_name='报表时间', required=True)
    report_type =  Field(CHAR, verbose_name='报表类型', max_length=1, choices=get_var('PARA/REPORT_TYPE'))
    milestone_delay_num  = Field(float, verbose_name='里程碑延迟权重合计数')
    milestone_change_num  = Field(float, verbose_name='里程碑变更权重合计数')
    change_milestone = Field(TEXT, verbose_name='变更里程碑')
    milestone_total_num  = Field(float, verbose_name='里程碑权重合计总数')
    
    @classmethod
    def OnInit(cls):
        Index('tasks_develop_report_detail_indx', cls.c.report_date, cls.c.report_type, cls.c.task, unique=True)
    class Table:
        fields = [
            {'name':'task_id', 'width':120},
            {'name':'name', 'width':200},
            {'name':'tx', 'width':40},
            {'name':'kfzx', 'width':60},
            {'name':'task_type', 'width':110},
            {'name':'stage', 'width':100},            
            {'name':'begin_time','width':70},
            {'name':'end_time', 'width':70},
            {'name':'version_date', 'width':70},
            {'name':'t_delay', 'width':70},
            {'name':'milestone_delay_num'},
            {'name':'milestone_change_num'},
            {'name':'delay_milestone', 'width':200},
            {'name':'change_milestone', 'width':400},
            {'name':'report_date'}
        ]

        